package com.example.demo.leetcode.classics150;

/**
 * ******************************************************
 *
 * @author liugh9
 * @version 1.0
 * @classname _8买卖股票的最佳时机II
 * @description
 * @date 2023/07/10 10:11
 * <p>
 * ******************************************************
 */
public class _8买卖股票的最佳时机II {

    public int maxProfit(int[] prices) {
        int length = prices.length;
        // 记录第几天持有或卖出的最大值
        int[][] dp = new int[length][2];
        dp[0][0] = 0;
        dp[0][1] = -prices[0];
        for (int i = 1; i < length; i++) {
            dp[i][0] = Math.max(dp[i-1][0], prices[i] + dp[i-1][1]);
            dp[i][1] = Math.max(dp[i-1][1], dp[i-1][0]-prices[i]);
        }


        return dp[length-1][0];
    }
}
